/**
 * Electron 环境辅助工具
 */

// 检测是否为Electron环境
export const isElectron = (): boolean => {
  return typeof window !== 'undefined' && (window as any).process && (window as any).process.type === 'renderer'
}

// 检测是否为开发环境的Electron
export const isElectronDev = (): boolean => {
  return isElectron() && process.env.NODE_ENV === 'development'
}

// 获取Electron应用的基础路径
export const getElectronBasePath = (): string => {
  if (isElectron()) {
    // Electron环境下使用相对路径
    return './'
  }
  return import.meta.env.VITE_BASE_PATH || '/'
}

// 处理Electron环境下的路由跳转
export const handleElectronNavigation = (path: string): void => {
  if (isElectron()) {
    // 在Electron环境下，确保路由正确处理
    const { ipcRenderer } = (window as any).require('electron')
    if (ipcRenderer) {
      // 通知主进程路由变化
      ipcRenderer.send('route-changed', path)
    }
  }
}

// 修复Electron环境下的页面加载问题
export const fixElectronPageLoad = (): void => {
  if (isElectron()) {
    // 监听页面加载失败事件
    window.addEventListener('beforeunload', () => {
      // 清理资源
    })
    
    // 处理页面刷新
    window.addEventListener('load', () => {
      if (window.location.protocol === 'file:') {
        // 在file协议下，确保路由正确初始化
        console.log('Electron file protocol detected, ensuring proper routing...')
      }
    })
  }
}